package py.com.alfa.escriba.web.services.impl;

import java.util.List;

import py.com.alfa.escriba.exception.ErrorCode;
import py.com.alfa.escriba.exception.ServiceException;
import py.com.alfa.escriba.persistence.dao.ComparecientesDAO;
import py.com.alfa.escriba.persistence.dto.ComparecientesDTO;
import py.com.alfa.escriba.web.interceptor.InvocationContext;
import py.com.alfa.escriba.web.services.LegitimacionesService;

public class LegitimacionesServiceImpl implements LegitimacionesService{

  private ComparecientesDAO legitimacionesDAO;

  public void setLegitimacionesDAO(ComparecientesDAO legitimacionesDAO) {
    this.legitimacionesDAO = legitimacionesDAO;
  }

  @Override
  public List<ComparecientesDTO> listLegitimaciones(InvocationContext ic) throws ServiceException {
//    List<ComparecientesDTO> legitimacioness =  legitimacionesDAO.listLegitimaciones();
//
//    return legitimacioness;
	  return null;
  }

  @Override
  public ComparecientesDTO getLegitimaciones(Long id, InvocationContext ic) throws ServiceException {
    if (id == null || id <= 0)
      throw new ServiceException(ErrorCode.PARAMETER_ERROR,"parameter.error.null","id");

//    ComparecientesDTO legitimaciones =  legitimacionesDAO.getLegitimacionesById(id);
//
//    if (legitimaciones == null)
//      throw new ServiceException(ErrorCode.NO_DATA_FOUND,"legitimaciones.notfound", id);
//
//    return legitimaciones;
    return null;
  }

  @Override
  public void deleteLegitimaciones(Long id, InvocationContext ic) throws ServiceException {
//    if (id == null || id <= 0)
//      throw new ServiceException(ErrorCode.PARAMETER_ERROR,"parameter.error.null","id");
//
//    ComparecientesDTO legitimaciones =  legitimacionesDAO.getLegitimacionesById(id);
//
//    if(legitimaciones == null)
//      throw new ServiceException(ErrorCode.NO_DATA_FOUND,"legitimaciones.notfound", id);
//
//    try {
//      legitimacionesDAO.deleteLegitimaciones(legitimaciones);
//    }
//    catch (DataIntegrityViolationException e){
//      throw new ServiceException(ErrorCode.DATA_INTEGRITY_VIOLATION, "legitimaciones.constraint.violation", id);
//    }

  }

  @Override
  public ComparecientesDTO updateLegitimaciones(Long id, ComparecientesDTO dto, InvocationContext ic) throws ServiceException {
//    if (id == null || id <= 0)
//      throw new ServiceException(ErrorCode.PARAMETER_ERROR,"parameter.error.null","id");
//
//    if (null == dto)
//      throw new ServiceException(ErrorCode.PARAMETER_ERROR,"parameter.error.null","dto");
//
//    ComparecientesDTO legitimaciones = legitimacionesDAO.getLegitimacionesById(id);
//
//    if (legitimaciones == null)
//      throw new ServiceException(ErrorCode.NO_DATA_FOUND,"legitimaciones.notfound", id);
//
//    legitimaciones.setIdpersonajuridica(dto.getIdpersonajuridica());
//    legitimaciones.setLegitimacion(dto.getLegitimacion());
// 
//
//    Utils.validarDTO(dto);
//
//    legitimacionesDAO.updateLegitimaciones(dto);
//
//    return legitimaciones;
	  return null;
  }

  @Override
  public ComparecientesDTO createLegitimaciones(ComparecientesDTO dto, InvocationContext ic) throws ServiceException {
//    if (dto == null)
//      throw new ServiceException(ErrorCode.PARAMETER_ERROR,"parameter.error.null","dto");
//
//    try {
//
//      Utils.validarDTO(dto);
//
//      legitimacionesDAO.createLegitimaciones(dto);
//    }
//    catch (DuplicateKeyException e){
//      throw new ServiceException(ErrorCode.DUPLICATE_KEY_EXCEPTION, "legitimaciones.duplicate.key");
//    }
//
//    return dto;
	  return null;
  }

}